package main

import "unsafe"

// runtime.go
type GoSlice struct {
	Ptr unsafe.Pointer
	Len int
	Cap int
}

// runtime.go
type GoType struct {
	Size       uintptr
	PtrData    uintptr
	Hash       uint32
	Flags      uint8
	Align      uint8
	FieldAlign uint8
	KindFlags  uint8
	Traits     unsafe.Pointer
	GCData     *byte
	Str        int32
	PtrToSelf  int32
}

// GoEface 本质是 interface
type GoEface struct {
	Type  *GoType
	Value unsafe.Pointer
}

// runtime.go
type GoString struct {
	Ptr unsafe.Pointer
	Len int
}
